Este é o passo a passo envolvido para a solução deste desafio:
Esta automação foi usada para o cenário em que o usuário estava logado em uma conta do Google e em que a opção para downloads estava configurada para usar a pasta Downloads como destino para os arquivos baixados.
Nesta etapa vamos abrir uma nova aba no navegador e baixar a planilha para a pasta de Downloads.
import pyautogui
import time
# Define uma pausa de 1.5s entre os comandos do pyautogui (failsafe)
pyautogui.PAUSE = 1.5
# Abre uma aba em branco no navegador
pyautogui.hotkey('ctrl', 't')
# Escreve na barra de endereços o link para acessar a planilha
pyautogui.write(r'https://drive.google.com/drive/folders/149xknr9JvrlEnhNWO49zPcw0PW5icxga?usp=sharing')
# Dá enter na barra de endereços
pyautogui.press('enter')
# Aguarda 5s
time.sleep(5)
# Obtém as coordenadas do centro da figura
x, y = pyautogui.locateCenterOnScreen('botao-exportar.png')
# Dá um duplo clique no centro da imagem
pyautogui.click(x, y, clicks=2)
# Aguarda 2s
time.sleep(2)
# Clica no arquivo (planilha)
pyautogui.click(x=472, y=296)
# Clica no menu de três pontos
pyautogui.click(x=768, y=201)
# Clica na opção de download
pyautogui.click(x=850, y=571)
# Aguarda 5s
time.sleep(5)
Nesta etapa vamos usar o pandas para analisar a base de dados.
import pandas as pd
# Cria um dataframe a partir da planilha de vendas
df_vendas = pd.read_excel('/home/diego/Downloads/Vendas - Dez.xlsx')
# Exibe o dataframe
display(df_vendas)
Código Venda | Data | ID Loja | Produto | Quantidade | Valor Unitário | Valor Final | |
---|---|---|---|---|---|---|---|
0 | 65014 | 2019-12-01 | Shopping Morumbi | Sunga Listrado | 5 | 114 | 570 |
1 | 65014 | 2019-12-01 | Shopping Morumbi | Casaco Listrado | 1 | 269 | 269 |
2 | 65016 | 2019-12-01 | Iguatemi Campinas | Sapato Listrado | 2 | 363 | 726 |
3 | 65016 | 2019-12-01 | Iguatemi Campinas | Casaco | 1 | 250 | 250 |
4 | 65017 | 2019-12-01 | Shopping SP Market | Gorro Liso | 3 | 92 | 276 |
... | ... | ... | ... | ... | ... | ... | ... |
7084 | 69996 | 2019-12-26 | Center Shopping Uberlândia | Short Listrado | 2 | 102 | 204 |
7085 | 69996 | 2019-12-26 | Center Shopping Uberlândia | Mochila | 4 | 270 | 1080 |
7086 | 69996 | 2019-12-26 | Center Shopping Uberlândia | Pulseira Estampa | 1 | 87 | 87 |
7087 | 69997 | 2019-12-26 | Ribeirão Shopping | Camisa Listrado | 1 | 108 | 108 |
7088 | 69997 | 2019-12-26 | Ribeirão Shopping | Short Linho | 2 | 133 | 266 |
7089 rows × 7 columns
# Obtém o faturamento total
faturamento = df_vendas['Valor Final'].sum()
# Texto para faturamento
faturamento = 'R${:_.2f}'.format(faturamento).replace('.', ',').replace('_', '.')
# Obtém o total de produtos vendidos
unidades_vendidas = df_vendas['Quantidade'].sum()
# Texto para unidades vendidas
unidades_vendidas = '{:_}'.format(unidades_vendidas).replace('.', ',').replace('_', '.')
# Exibe os indicadores
print(f'Faturamento: {faturamento}')
print(f'Unidades vendidas: {unidades_vendidas}')
Faturamento: R$2.917.311,00 Unidades vendidas: 15.227
Para enviar um e-mail, basta criar mais uma aba para abrir o Gmail, clicar em escrever e-mail e preencher os campos da caixa de e-mail.
# Abre uma aba em branco no navegador
pyautogui.hotkey('ctrl', 't')
# Digita o link na barra de endereços
pyautogui.write(r'https://mail.google.com/mail/u/0/?tab=rm&ogbl#inbox')
# Dá enter
pyautogui.press('enter')
# Aguarda 5s
time.sleep(5)
# Clica no botão para escrever e-mail
pyautogui.click(x=148, y=200)
# Escreve o endereço de e-mail no respectivo campo
pyautogui.write('diegotorrescoder+diretoria@gmail.com')
# Dá um tab para pular para o próximo e-mail
pyautogui.press('tab')
# Dá um tab para pular para o campo de assunto
pyautogui.press('tab')
# Escreve o assunto do e-mail
pyautogui.write('Relatorio de Vendas')
# Dá um tab para pular o corpo do e-mail
pyautogui.press('tab')
# Mensagem a ser enviada
mensagem = f'''Prezado Diretor,
Estou lhe enviando os resultados da analise dos dados de vendas.
Faturamento: {faturamento}
Unidades vendidas: {unidades_vendidas}
Atenciosamente,
Diego Moura Torres'''
# Digita a mensagem no corpo do e-mail
pyautogui.write(mensagem)
# Envia o e-mail
pyautogui.hotkey('ctrl', 'enter')